#region Copyright
/// <copyright>
/// Copyright (c) 2007 Ilia Shramko.
/// Released under the terms of the GNU General Public License.
/// </copyright>
#endregion

using System;
using System.Collections.Generic;
using System.Text;

namespace Osh.ZoomPlayer
{
	public enum CommandCode
	{
		GetApplicationName = 0,
		GetApplicationVersion = 1,
		GetPlayState = 1000,
		GetFullscreenState = 1010,
		GetDuration = 1110,
		GetPosition = 1120,
		/// <summary>
		/// Show a PopUp OSD Text. Parameter is a text to be shown as a PopUp OSD.
		/// </summary>
		ShowOsdMessage = 1200,
		/// <summary>
		/// Temporarily Disables the PopUp OSD
		/// </summary>
		DisableOsdMessage = 1201,
		/// <summary>
		/// Re-Enables the PopUp OSD
		/// </summary>
		EnableOsdMessage = 1202,
		/// <summary>
		/// Sets OSD "Visible" Duration. Value in Seconds.
		/// </summary>
		SetOsdDuration = 1210,
		GetPlayMode = 1300,
		GetDvdTitle = 1400,
		GetDvdTitleCount = 1401,
		GetDvdMenuMode = 1420,
		GetDvdChapter = 1500,
		GetDvdChapterCount = 1501,
		GetDvdAudio = 1600,
		GetDvdAudioCount = 1601,
		GetDvdAudioName = 1602,
		/// <summary>
		/// Set the DVD's Audio Track. Valid values 0-7 or 15 for default track.
		/// </summary>
		SetDvdAudio = 1603,

		GetDvdSubtitle = 1700,
		GetDvdSubtitleCount = 1701,
		GetDvdSubtitleName = 1702,
		/// <summary>
		/// Set the DVD's Subtitle Track. Valid values 0-31, also enables subtitle.
		/// </summary>
		SetDvdSubtitle = 1703,
		HideDvdSubtitle = 1704,
		
		GetDvdAngle = 1750,
		GetDvdAngleCount = 1751,
		/// <summary>
		/// Set the DVD's Angle. Valid Values 1-9
		/// </summary>
		SetDvdAngle = 1753,

		GetFileName = 1800,
		GetPlaylist = 1810,
		
		/// <summary>
		/// Play a Media File, Value is a string containing the file name.
		/// </summary>
		PlayFile = 1850,

		GetPlaylistPosition = 1900,
		/// <summary>
		/// Value from 0 to Number items in the play list-1 (plays the file in index).
		/// </summary>
		SetPlaylistPosition = 1910,
		/// <summary>
		/// Clears the Current Play List (will close any playing file)
		/// </summary>
		ClearPlaylist = 1920,
		/// <summary>
		/// Add a file to the Play List
		/// </summary>
		AddPlaylistFile = 1930,
		/// <summary>
		/// Select an Item in the Play List
		/// </summary>
		SelectPlaylistItem = 1940,
		/// <summary>
		/// Remove selection of a Play List item
		/// </summary>
		DeselectPlaylistItem = 1941,
		
		GetARMode = 2200,
		GetDvdARMode = 2210,
		
		/// <summary>
		/// Sets the aspect ratio used for Derived Aspect Ratio mode for the currentply playing video.
		/// The aspect ratio is specified as: "Width Ratio"+"Height Ratio" left shifted 16 bits.
		/// For Example, 16:9 would be "16+9*65536" or "16+9&lt;&lt;16" or "16+(9 shl 16)"
		/// (the examples do the same thing in different syntax).
		/// </summary>
		SetDerivedModeAR = 2600,

		/// <summary>
		/// Close the ZP Error message (if visible).
		/// </summary>
		DismissZPError = 3000,
		
		/// <summary>
		/// Sets the Current Play Position (in seconds)
		/// </summary>
		SetPosition = 5000,
		
		/// <summary>
		/// Plays a DVD Title (depends on DVD Navigation accepting the title).
		/// </summary>
		PlayDvdTitle = 5010,
		/// <summary>
		/// Same as PlayDvdTitle, Plays a DVD Title at a specific chapter,
		/// value of "1,5" plays Title #1, Chapter #5 (without the "" of course).
		/// </summary>
		PlayDvdTitleChapter = 5020,
		/// <summary>
		/// Same as PlayDvdTitle, Plays a DVD Chapter in the current Title.
		/// </summary>
		PlayDvdChapter = 5030,
		
		/// <summary>
		/// Calls a Zoom Player function by name (see skinning tutorial for list)
		/// </summary>
		CallZPFunction = 5100,
		/// <summary>
		/// Calls a Zoom Player extended function by name (see skinning tutorial for list)
		/// Format "exFunctionName,Value"
		/// </summary>
		CallZPExFunction = 5110,
		/// <summary>
		/// Pass a keyboard scancode number to the Zoom Player Interperter (such as VK_DOWN),
		/// this can be used to access the Navigator interfaces, pass the scancode as a parameter.
		/// </summary>
		CallZPScanCode = 5120,
	}
}
